﻿using System.Collections.Generic;
using System.IO;
using JPR.TunelProxy.DataObjects;

namespace JPR.TunelProxy.Interfaces
{
    public interface IHttpParser
    {
        void AddData(byte[] data);
        void AddData(byte[] data, int offset, int count);
        bool IsHeaderCompleted { get; }
        bool IsHttpCompleted { get; }
        IDictionary<string, string> GetHttpHeaders();
        int ContentLength { get; }
        Stream GetContent();
        string GetCommandOrStatusLine();
        bool IsRequest { get; }
        bool IsResponse { get; }
        HttpRequestData GetHttpRequestData();
        HttpResponseData GetHttpResponseData();
        IHttpData GetHttpData();
    }
}